package cn.com.bluemoon.daps.common.datascope;

import cn.com.bluemoon.daps.common.constant.DapRoleEnum;
import cn.com.bluemoon.daps.common.datascope.aop.AuthAccessService;
import cn.com.bluemoon.daps.common.datascope.aop.DefaultAuthAccessService;

import java.lang.annotation.*;

/**
 * 角色权限控制
 *
 * @author Jarod.Kong
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface AuthRole {
    /**
     * 授权角色名
     * {@link DapRoleEnum}
     */
    DapRoleEnum[] roleAuth();

    /**
     * 自定义数据权限控制
     * 默认DefaultAuthAccessService：只对授权角色进行权限控制
     */
    Class<? extends AuthAccessService>[] customAuth() default DefaultAuthAccessService.class;

    /**
     * 自定义返回给前端的无权限信息
     */
    String errorMsg() default "无权限访问该资源";
}
